import { ApiModelProperty } from '@nestjs/swagger';
import { IsNotEmpty, IsString, Length } from 'class-validator';
import { Type } from 'class-transformer';
import { ApiErrorCode } from '../../../common/enums/api-error-code.enum';

/**
 * DTO（数据传输对象）
 * 他就是一个普通的类，用来替换 UsersController 中 create 方法的参数类型
 */
export class LoginUserDto {

    @ApiModelProperty({description:'用户名或者用户账户'})
    @IsNotEmpty({ message: '用户姓名是必不可少的', context: { errorCode: ApiErrorCode.USER_NAME_INVALID } })
    @IsString({ message: '用户姓名是必不可少的', context: { errorCode: ApiErrorCode.USER_NAME_INVALID } })
    readonly userName: string;
    @ApiModelProperty({description:'用户密码'})
    @Type(() => String)    
    
    @Length(5,15, { message: '用户密码长度在5到15位', context: { errorCode: ApiErrorCode.USER_AGE_INVALID } })
    readonly password: string;
}